Please try to follow these guidelines when creating a module for MUBBS. This will insure CONSISTENCY from the user's point of view, and make the BBS a pleasure to call.
Your comments are welcome on this matter, and your suggestions may be added to this file.
Many thanks to those who have contributed to MUBBS and supplied me with some of the following ideas and text.
MUBBS User Interface Guidelines:
The greatest danger in a collaborative design process is that the result can end up looking like a patchwork, rather than a unified whole (kind of like the difference between a platypus and a dolphin).
Everyone has their own idea of what is "right" and what seems "natural" to them. This leads to INCONSISTENCY for the end user of a program. I good example can be found in DOS based machines.
If each programmer can follow some simple User Interface Guidelines when building his code, the user will be able to use the programmers creation to it's fullest without having to learn a new set of "actions" just to get the code to operate.
MUBBS will be known as a Sysop's dream BBS. He can modify it in any way, and configure it as he pleases. Hopefully by our example, Sysop's will keep their BBS's somewhat standard so that when we call them we won't have to waste our time figuring out what is what.
The way you make a BBS different is by supplying different INFORMATION and DISCUSSIONS (Forums, Pubs...). A Sysop hoping to draw a crowd to his BBS could have a different BBS program running, but if the information is the same as others around, it won't make a difference.
MENUS:
The key to making the user feel at ease in operating a BBS is all in the MENUS.
MUBBS menus are formatted so that the first letter of a word indicates a choice. The word is spelled out to the user, so that it's easy to figure out what the choice does.
Example:
*** Main Menu ***
>> Files, Messages, Userconfig, Logoff :
This is just too simple isn't it ? Your BBS can't be very large, there isn't enough choices on this menu !
When you start a Mac application you don't see much either. You get a BIG "woopie!" about box introducing the program, but then you see just the names of the menu choices above. Some of the menus are "standard" (File and Edit). But you have seen VERY complicated programs on the Mac so you know better. You know that looking through the menus allows you to get the "feel" of what the program does.
This will all be true of MUBBS. Menus lead to other menus that lead to other menus BUT, each menu is ASSOCIATED with a particular section/function. THIS IS HOW THE HUMAN BRAIN FUNCTIONS - ASSOCIATIVELY !! So, since we are interfacing with a human brain or "associative computer" we must keep this in mind.
I have gotten so many compliments from people who said that the BBS was very easy to learn and use it's not funny. The original MUBBS was only up for about 6 or 8 months !
You can make your logon screens as BIG and as BOLD as you want, but keep the menus simple. Keep the choices on one menu small. Group your choices together in small groups and give them a name (which is a menu choice to get to them).
Your BBS can have LOTS of functions, and believe me the user will find them. People love exploring. Your BBS will provide a great experience that no other BBS has !
The ">>" is just a standard way of indicating to the user that he is at a command line, and not looking at normal text. You can tell at a single glance that it's a menu. Include this in all your menus.
The "*** Main Menu ***" indicates what MENU the user is at, it could be "*** File Section Menu ***" when in the file section.
There is no need for a delimiter like "M)essages", the first letter is in UPPER CASE for menu choices. It's pretty simple for users to figure out that the first letter is the choice selector. If you need two words, do this:
>> Files section, Message section, User configuration, Log off :
This normally lengthens the menu and is not necessary in most menus. A single word like "User" works OK. Most users would try that menu choice and see where it leads anyway. From then on he would know what it does.
A comma "," and a space follow each choice to allow the user to divide choices quickly in his mind. The ":" is telling the user to input here.
"L" is reserved for "Logoff" and "Q" is for "Quit" and return to a previous menu. The rest is up to you and the Sysop using your Module. You should provide "L" at what would be considered your Module's main menu. If your menus go very deep (like 4 levels or more) you might want to reconsider making your program into two separate modules, but in that case you should supply a "L" so that the user doesn't have to back up several menus just to log out (keeps them from just hanging up on your BBS, a major Sysop "piss off" for sure).
One press of a key sends the user wherever he chooses. This is normally called "Hot Keys". MUBBS is always in "Hot Key" mode. The only problem is if a user logs in and gets line noise. In the future MUBBS may test for line noise and turn off the one key press feature for that call.
When you release your module to the public for use, include these standard menus. Your module should allow a sysop to change them any way they like, but most sysops will stay within these guidelines because of YOUR EXAMPLE, only changing the words when needed.
The things to remember when setting up your menus is to keep it short and simple. Large assortments of features all piled in one menu is for DOS users. Think "associative" when designing your module and or whole BBS. Remember what it is you're trying to interface to (a brain). Your users will thank you.
FILES:
Selecting files from a BBS is always a interface problem. When a Front End is in use (see below) it will be much easier.
The default setting in MUBBS will make it so that the user does not have to type in a file name. He chooses it from a simple selection.
There should be a option to type in a file name, and to search globally for that file in all sections. Part of a file name entered would bring up a choice of files matching the partial word.
DISCUSSIONS:
"Discussions" are like "Pubs" or "Forums" on other BBS's where people can post comments on subjects of interest.
There are lots of interests out there, and the list could get long. Remember the menu discussion above about short menus and divide the subjects up into groups.
There should be a feature to allow searching all or some of the subject for a keyword or words.
SEARCHING:
Any "text" type search should allow words like "and" & "or" & "not" be used in a search string. Lower/Upper case is ignored. This keeps it simple and easy to use.
Example:
I'm looking for anything on joe or carol but not when it contains bill...
Enter Search String :joe or carol not bill
People don't normally need to search for "or" or "not". The "not" function will not work in all circumstances.
USERS:
MUBBS will always support ALL users. Never leave anyone out just because they don't use your type of computer. You may run into that one person that makes your BBS a big hit because he was interested in what you have to offer.
All file types must be able to be handled. Screen size should be adjustable.
If possible you should check with people who have modems and these "major" computers and let them test out your module:
Mac, PC, Atari, Commodore, Apple.
There will also be people who have just terminals too. Remember these people will eventually get a computer, so treat them right ! (have ASCII sends).
If a Sysop chooses to cover one type of system he can. The ability to handle more will remain without causing problems.
FRONT ENDS:
Plan on modifying your code in the future to support a "Front End". A program that the user runs on his computer at his end to interface over the modem to the BBS program. He just points and clicks like any other Mac (or *yuck* Windows) program and he gets what he needs.
This means that your code should be in many sections or "subroutines" that can be called separately. When a user clicks on a choice, you call your routine. There will be a global variable that tells you the user is using a front end.
As of this writing there is no code for a front end, but it wont be too long ! It would seem that a new set of modules would be called if there was a front end activated.
Modules MUST support normal access always. Front End access is a option.
SPEED:
Always think SPEED in your code. If you have to run a long search, you must call a routine that allows other users to have CPU time.
Also figure out a way to increase the speed of your routines. Some new modems will be doing 19200 and beyond in the future.